﻿using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Domain;
using Moq;
using OS.Infrastructure.Domain.UnitOfWork;
using Xunit;
using ShortUrl.Controllers;

namespace ShortUrl.Tests.Controllers
{
    public class HomeControllerFacts
    {
        public class Index
        {
            //[Fact]
            //public void ReturnsViewResultWithDefaultViewName()
            //{
            //    // Arrange
            //    var controller = new HomeController(IUnitOfWorkFactory, IAccountRepository);

            //    // Act
            //    var result = controller.GetAllAccount();
            //    // Assert
            //    var viewResult = Assert.IsType<ViewResult>(result);
            //    Assert.IsType(typeof(IList<Account>), viewResult.Model);
            //    //Assert.Null(viewResult.Model);
            //}

            //protected IAccountRepository IAccountRepository
            //{
            //    get {return new Mock<IAccountRepository>().Object; }
            //}

            //protected IUnitOfWorkFactory IUnitOfWorkFactory
            //{
            //    get {return new Mock<IUnitOfWorkFactory>().Object; }
            //}

            //    [Fact]
        //    public void SetsViewDataWithNoModel()
        //    {
        //        // Arrange
        //        var controller = new HomeController();

        //        // Act
        //        var result = controller.Index();

        //        // Assert
        //        var viewResult = Assert.IsType<ViewResult>(result);
        //        Assert.Equal("Welcome to ASP.NET MVC!", viewResult.ViewBag.Message);
        //        Assert.Null(viewResult.Model);
        //    }
        //}

        //public class About
        //{
        //    [Fact]
        //    public void ReturnsViewResultWithDefaultViewName()
        //    {
        //        // Arrange
        //        var controller = new HomeController();

        //        // Act
        //        var result = controller.About();

        //        // Assert
        //        var viewResult = Assert.IsType<ViewResult>(result);
        //        Assert.Empty(viewResult.ViewName);
        //    }

        //    [Fact]
        //    public void SetsViewDataWithNoModel()
        //    {
        //        // Arrange
        //        var controller = new HomeController();

        //        // Act
        //        var result = controller.About();

        //        // Assert
        //        var viewResult = Assert.IsType<ViewResult>(result);
        //        Assert.Null(viewResult.Model);
        //    }
        }
    }
}